package general;

import java.io.File;
import java.io.IOException;


/**
 * classe representant une page, avec des pointeurs sur le fichier de cette page, et différents attributs lié à l'algo
 * @author remi
 *@version 1.0
 */
public class Page {

	// TODO Page generer getters et setters, passer en prive

	/*
	 * utile = true si la page est de type structuree false sinon
	 */
	private boolean utile;
	
	
	public boolean isUtile() {
		return utile;
	}

	public void setUtile(boolean utile) {
		this.utile = utile;
	}



	/**
	 * URL de la page sur la machine
	 */
	private String urlLocal;
	
	/**
	 * URL de la page sur internet
	 */
	private String urlWeb;
	/**
	 * Point de la page qui represente les caracterisstiques extraitent de la page normalisees
	 */
	
	
	/**
	 * varibale d'instance contenant l'objet fichier java correpsondant a la page html physique sur le dd.
	 */
	private File fichier;
	
	/**
	 * @return the fichier
	 */
	public File getFichier() {
		return this.fichier;
	}

	/**
	 * @param fichier the fichier to set
	 */
	public void setFichier(File fichier) {
		this.fichier = fichier;
	}



	private Point point;
	/**
	 * Point de la page qui represente les caracterisstiques extraitent de la page brutes
	 */
	private Point pointBrut;
	/**
	 * Resultat de la classificationEtSelection qui definit dans quelle classe est la page
	 */
	private int numeroCluster; //eventuellement unsigned
	
	
	
	// TODO Page ajouter des constructeurs au typage differents
	/**
	 * Constructeur classique de page
	 */
	public Page() {
		// TODO Page() Auto-generated constructor stub
		//this.fichier = new File();
		this.numeroCluster=0;
		this.point = new Point();
		this.pointBrut = new Point();
		this.urlLocal= "azertyuiop";
		this.urlWeb  = "azertyuiop";
	}
	

	/**
	 * Constructeur avec un lien local vers la page � lire
	 * @param url, url local de la page
	 */
	public Page(String url) {
		// TODO Page(): recuperer l'url web de la page 
		this();
		this.urlLocal = url;
	}
	
	public Page(File fichier) {
		// TODO Page(File): crée une page a partir d'un fichier, ajouter l'extraction de l'URL
		this();
		this.fichier = fichier;
		try {
			this.urlLocal = fichier.getCanonicalPath();
		} catch (IOException e) {
			System.err.println("Probleme lors de la creation de la page a partir du fichier, le constructeur de la page n'a pas réussi à creer le CanonicalPath correspondant");
			//e.printStackTrace();
		}
	}


	public String getUrlLocal() {
		return urlLocal;
	}



	public void setUrlLocal(String urlLocal) {
		this.urlLocal = urlLocal;
	}



	public String getUrlWeb() {
		return urlWeb;
	}



	public void setUrlWeb(String urlWeb) {
		this.urlWeb = urlWeb;
	}



	public Point getPoint() {
		return point;
	}



	public void setPoint(Point point) {
		this.point = point;
	}



	public Point getPointBrut() {
		return pointBrut;
	}



	public void setPointBrut(Point pointBrut) {
		this.pointBrut = pointBrut;
	}



	public int getNumeroCluster() {
		return numeroCluster;
	}



	public void setNumeroCluster(int numeroCluster) {
		this.numeroCluster = numeroCluster;
	}

	/* (non-Javadoc)
	 * @see java.lang.Object#toString()
	 */
	@Override
	public String toString() {
		return "Page [fichier=" + this.fichier + ", numeroCluster="
				+ this.numeroCluster + ", point=" + this.point + ", pointBrut="
				+ this.pointBrut + ", urlLocal=" + this.urlLocal + ", urlWeb="
				+ this.urlWeb + ", utile=" + this.utile + "]";
	}
	
	
	
	

}
